// RAP [rh] As of now, content types don't make sense in RAP
///*******************************************************************************
// * Copyright (c) 2005, 2007 IBM Corporation and others.
// * All rights reserved. This program and the accompanying materials
// * are made available under the terms of the Eclipse Public License v1.0
// * which accompanies this distribution, and is available at
// * http://www.eclipse.org/legal/epl-v10.html
// *
// * Contributors:
// *     IBM Corporation - initial API and implementation
// *******************************************************************************/
//package org.eclipse.ui.internal.dialogs;
//
//import java.util.ArrayList;
//import java.util.Iterator;
//import java.util.List;
//
//import org.eclipse.core.runtime.CoreException;
//import org.eclipse.core.runtime.IStatus;
//import org.eclipse.core.runtime.MultiStatus;
//import org.eclipse.core.runtime.Platform;
//import org.eclipse.core.runtime.content.IContentType;
//import org.eclipse.core.runtime.content.IContentTypeManager;
//import org.eclipse.jface.preference.PreferencePage;
//import org.eclipse.jface.viewers.ISelectionChangedListener;
//import org.eclipse.jface.viewers.IStructuredContentProvider;
//import org.eclipse.jface.viewers.IStructuredSelection;
//import org.eclipse.jface.viewers.ITreeContentProvider;
//import org.eclipse.jface.viewers.LabelProvider;
//import org.eclipse.jface.viewers.ListViewer;
//import org.eclipse.jface.viewers.SelectionChangedEvent;
//import org.eclipse.jface.viewers.TreeViewer;
//import org.eclipse.jface.viewers.Viewer;
//import org.eclipse.jface.viewers.ViewerComparator;
//import org.eclipse.jface.window.Window;
//import org.eclipse.osgi.util.NLS;
//import org.eclipse.osgi.util.TextProcessor;
//import org.eclipse.swt.SWT;
//import org.eclipse.swt.events.KeyAdapter;
//import org.eclipse.swt.events.KeyEvent;
//import org.eclipse.swt.events.SelectionAdapter;
//import org.eclipse.swt.events.SelectionEvent;
//import org.eclipse.swt.layout.GridData;
//import org.eclipse.swt.layout.GridLayout;
//import org.eclipse.swt.widgets.Button;
//import org.eclipse.swt.widgets.Composite;
//import org.eclipse.swt.widgets.Control;
//import org.eclipse.swt.widgets.Label;
//import org.eclipse.swt.widgets.Shell;
//import org.eclipse.swt.widgets.Text;
//import org.eclipse.ui.IWorkbench;
//import org.eclipse.ui.IWorkbenchPreferencePage;
//import org.eclipse.ui.PlatformUI;
//import org.eclipse.ui.dialogs.PreferenceLinkArea;
//import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
//import org.eclipse.ui.internal.WorkbenchMessages;
//import org.eclipse.ui.internal.WorkbenchPlugin;
//import org.eclipse.ui.internal.misc.StatusUtil;
//import org.eclipse.ui.internal.util.Util;
//import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
//import org.eclipse.ui.statushandlers.StatusManager;
//
///**
// * Preference page that allows manipulation of core content types. Unlike most
// * preference pages, it does not work on the preference store itself but rather
// * the content type manager. As such, there are no apply/default buttons and all
// * changes made take effect immediately.
// * 
// * @since 3.1
// */
//public class ContentTypesPreferencePage extends PreferencePage implements
//		IWorkbenchPreferencePage {
//
//	private ListViewer fileAssociationViewer;
//
//	private Button removeButton;
//
//	private TreeViewer contentTypesViewer;
//
//	private Button addButton;
//	
//	private Button editButton;
//
//	private Text charsetField;
//
//	private Button setButton;
//
//	private IWorkbench workbench;
//
//	private class Spec {
//		String name;
//
//		String ext;
//
//		boolean isPredefined;
//
//		int sortValue;
//
//		/*
//		 * (non-Javadoc)
//		 * 
//		 * @see java.lang.Object#toString()
//		 */
//		public String toString() {
//			String toString;
//			if (name != null) {
//				toString = name;
//			} else {
//				toString = "*." + ext; //$NON-NLS-1$
//			}
//
//			if (isPredefined) {
//				toString = NLS.bind(
//						WorkbenchMessages.get().ContentTypes_lockedFormat, toString);
//			}
//
//			return toString;
//		}
//	}
//
//	private class FileSpecComparator extends ViewerComparator {
//		public int category(Object element) {
//			// only Spec objects in here - unchecked cast
//			return ((Spec) element).sortValue;
//		}
//	}
//
//	private class FileSpecLabelProvider extends LabelProvider {
//		/*
//		 * (non-Javadoc)
//		 * 
//		 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
//		 */
//		public String getText(Object element) {
//			String label = super.getText(element);
//			return TextProcessor.process(label, "*."); //$NON-NLS-1$
//		}
//	}
//
//	private class FileSpecContentProvider implements IStructuredContentProvider {
//
//		/*
//		 * (non-Javadoc)
//		 * 
//		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
//		 */
//		public void dispose() {
//		}
//
//		/*
//		 * (non-Javadoc)
//		 * 
//		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
//		 *      java.lang.Object, java.lang.Object)
//		 */
//		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
//		}
//
//		/*
//		 * (non-Javadoc)
//		 * 
//		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
//		 */
//		public Object[] getElements(Object inputElement) {
//			IContentType contentType = (IContentType) inputElement;
//			String[] userextfileSpecs = contentType
//					.getFileSpecs(IContentType.FILE_EXTENSION_SPEC
//							| IContentType.IGNORE_PRE_DEFINED);
//			String[] usernamefileSpecs = contentType
//					.getFileSpecs(IContentType.FILE_NAME_SPEC
//							| IContentType.IGNORE_PRE_DEFINED);
//			String[] preextfileSpecs = contentType
//					.getFileSpecs(IContentType.FILE_EXTENSION_SPEC
//							| IContentType.IGNORE_USER_DEFINED);
//			String[] prenamefileSpecs = contentType
//					.getFileSpecs(IContentType.FILE_NAME_SPEC
//							| IContentType.IGNORE_USER_DEFINED);
//
//			return createSpecs(userextfileSpecs, usernamefileSpecs,
//					preextfileSpecs, prenamefileSpecs);
//		}
//
//		private Object[] createSpecs(String[] userextfileSpecs,
//				String[] usernamefileSpecs, String[] preextfileSpecs,
//				String[] prenamefileSpecs) {
//			List returnValues = new ArrayList();
//			for (int i = 0; i < usernamefileSpecs.length; i++) {
//				Spec spec = new Spec();
//				spec.name = usernamefileSpecs[i];
//				spec.isPredefined = false;
//				spec.sortValue = 0;
//				returnValues.add(spec);
//			}
//
//			for (int i = 0; i < prenamefileSpecs.length; i++) {
//				Spec spec = new Spec();
//				spec.name = prenamefileSpecs[i];
//				spec.isPredefined = true;
//				spec.sortValue = 1;
//				returnValues.add(spec);
//			}
//
//			for (int i = 0; i < userextfileSpecs.length; i++) {
//				Spec spec = new Spec();
//				spec.ext = userextfileSpecs[i];
//				spec.isPredefined = false;
//				spec.sortValue = 2;
//				returnValues.add(spec);
//			}
//
//			for (int i = 0; i < preextfileSpecs.length; i++) {
//				Spec spec = new Spec();
//				spec.ext = preextfileSpecs[i];
//				spec.isPredefined = true;
//				spec.sortValue = 3;
//				returnValues.add(spec);
//			}
//
//			return returnValues.toArray();
//		}
//	}
//
//	private class ContentTypesLabelProvider extends LabelProvider {
//		/*
//		 * (non-Javadoc)
//		 * 
//		 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
//		 */
//		public String getText(Object element) {
//			IContentType contentType = (IContentType) element;
//			return contentType.getName();
//		}
//	}
//
//	private class ContentTypesContentProvider implements ITreeContentProvider {
//
//		private IContentTypeManager manager;
//
//		/*
//		 * (non-Javadoc)
//		 * 
//		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
//		 */
//		public Object[] getChildren(Object parentElement) {
//			List elements = new ArrayList();
//			IContentType baseType = (IContentType) parentElement;
//			IContentType[] contentTypes = manager.getAllContentTypes();
//			for (int i = 0; i < contentTypes.length; i++) {
//				IContentType type = contentTypes[i];
//				if (Util.equals(type.getBaseType(), baseType)) {
//					elements.add(type);
//				}
//			}
//			return elements.toArray();
//		}
//
//		/*
//		 * (non-Javadoc)
//		 * 
//		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
//		 */
//		public Object getParent(Object element) {
//			IContentType contentType = (IContentType) element;
//			return contentType.getBaseType();
//		}
//
//		/*
//		 * (non-Javadoc)
//		 * 
//		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
//		 */
//		public boolean hasChildren(Object element) {
//			return getChildren(element).length > 0;
//		}
//
//		/*
//		 * (non-Javadoc)
//		 * 
//		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
//		 */
//		public Object[] getElements(Object inputElement) {
//			return getChildren(null);
//		}
//
//		/*
//		 * (non-Javadoc)
//		 * 
//		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
//		 */
//		public void dispose() {
//
//		}
//
//		/*
//		 * (non-Javadoc)
//		 * 
//		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
//		 *      java.lang.Object, java.lang.Object)
//		 */
//		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
//			manager = (IContentTypeManager) newInput;
//		}
//	}
//
//	/*
//	 * (non-Javadoc)
//	 * 
//	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
//	 */
//	protected Control createContents(Composite parent) {
//		Composite composite = new Composite(parent, SWT.NONE);
//		GridLayout layout = new GridLayout(2, false);
//		layout.marginHeight = layout.marginWidth = 0;
//		composite.setLayout(layout);
//
//		PreferenceLinkArea contentTypeArea = new PreferenceLinkArea(
//				composite,
//				SWT.NONE,
//				"org.eclipse.ui.preferencePages.FileEditors", WorkbenchMessages.get().ContentTypes_FileEditorsRelatedLink,//$NON-NLS-1$
//				(IWorkbenchPreferenceContainer) getContainer(), null);
//
//		GridData data = new GridData(GridData.FILL_HORIZONTAL
//				| GridData.GRAB_HORIZONTAL);
//		contentTypeArea.getControl().setLayoutData(data);
//
//		createContentTypesTree(composite);
//		createFileAssociations(composite);
//		createCharset(composite);
//
//		workbench.getHelpSystem().setHelp(parent,
//				IWorkbenchHelpContextIds.CONTENT_TYPES_PREFERENCE_PAGE);
//
//		applyDialogFont(composite);
//		return composite;
//	}
//
//	private void createCharset(final Composite parent) {
//		Composite composite = new Composite(parent, SWT.NONE);
//		GridLayout layout = new GridLayout(3, false);
//		layout.marginHeight = layout.marginWidth = 0;
//		GridData compositeData = new GridData(GridData.FILL_HORIZONTAL);
//		compositeData.horizontalSpan = 2;
//		composite.setLayoutData(compositeData);
//		composite.setLayout(layout);
//
//		Label label = new Label(composite, SWT.NONE);
//		label.setFont(parent.getFont());
//		label.setText(WorkbenchMessages.get().ContentTypes_characterSetLabel);
//		charsetField = new Text(composite, SWT.SINGLE | SWT.BORDER);
//		charsetField.setFont(parent.getFont());
//		charsetField.setEnabled(false);
//		GridData data = new GridData(GridData.FILL_HORIZONTAL);
//		charsetField.setLayoutData(data);
//		setButton = new Button(composite, SWT.PUSH);
//		setButton.setFont(parent.getFont());
//		setButton
//				.setText(WorkbenchMessages.get().ContentTypes_characterSetUpdateLabel);
//		setButton.setEnabled(false);
//		setButtonLayoutData(setButton);
//		setButton.addSelectionListener(new SelectionAdapter() {
//
//			/*
//			 * (non-Javadoc)
//			 * 
//			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
//			 */
//			public void widgetSelected(SelectionEvent e) {
//				try {
//					String text = charsetField.getText().trim();
//					if (text.length() == 0) {
//						text = null;
//					}
//					getSelectedContentType().setDefaultCharset(text);
//					setButton.setEnabled(false);
//				} catch (CoreException e1) {
//					StatusUtil.handleStatus(e1.getStatus(), StatusManager.SHOW,
//							parent.getShell());
//				}
//			}
//		});
//
//		charsetField.addKeyListener(new KeyAdapter() {
//			/*
//			 * (non-Javadoc)
//			 * 
//			 * @see org.eclipse.swt.events.KeyAdapter#keyReleased(org.eclipse.swt.events.KeyEvent)
//			 */
//			public void keyReleased(KeyEvent e) {
//				IContentType contentType = getSelectedContentType();
//				String charset = contentType.getDefaultCharset();
//				if (charset == null) {
//					charset = ""; //$NON-NLS-1$
//				}
//				setButton.setEnabled(!charset.equals(charsetField.getText()));
//			}
//		});
//
//	}
//
//	/**
//	 * @param composite
//	 */
//	private void createFileAssociations(final Composite composite) {
//		{
//			Label label = new Label(composite, SWT.NONE);
//			label.setText(WorkbenchMessages.get().ContentTypes_fileAssociationsLabel);
//			GridData data = new GridData();
//			data.horizontalSpan = 2;
//			label.setLayoutData(data);
//		}
//		{
//			fileAssociationViewer = new ListViewer(composite);
//			fileAssociationViewer.setComparator(new FileSpecComparator());
//			fileAssociationViewer.getControl().setFont(composite.getFont());
//			fileAssociationViewer
//					.setContentProvider(new FileSpecContentProvider());
//			fileAssociationViewer.setLabelProvider(new FileSpecLabelProvider());
//			GridData data = new GridData(GridData.FILL_BOTH);
//			data.horizontalSpan = 1;
//			fileAssociationViewer.getControl().setLayoutData(data);
//			fileAssociationViewer
//					.addSelectionChangedListener(new ISelectionChangedListener() {
//
//						public void selectionChanged(SelectionChangedEvent event) {
//							IStructuredSelection selection = (IStructuredSelection) event
//									.getSelection();
//							if (selection.isEmpty()) {
//								editButton.setEnabled(false);
//								removeButton.setEnabled(false);
//								return;
//							}
//							boolean enabled = true;
//							List elements = selection.toList();
//							for (Iterator i = elements.iterator(); i.hasNext();) {
//								Spec spec = (Spec) i.next();
//								if (spec.isPredefined) {
//									enabled = false;
//								}
//							}
//							editButton.setEnabled(enabled && selection.size() == 1);
//							removeButton.setEnabled(enabled);
//						}
//					});
//		}
//		{
//			Composite buttonArea = new Composite(composite, SWT.NONE);
//			GridLayout layout = new GridLayout(1, false);
//			layout.marginHeight = layout.marginWidth = 0;
//			buttonArea.setLayout(layout);
//			GridData data = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
//			buttonArea.setLayoutData(data);
//
//			addButton = new Button(buttonArea, SWT.PUSH);
//			addButton.setFont(composite.getFont());
//			addButton
//					.setText(WorkbenchMessages.get().ContentTypes_fileAssociationsAddLabel);
//			addButton.setEnabled(false);
//			setButtonLayoutData(addButton);
//			addButton.addSelectionListener(new SelectionAdapter() {
//				/*
//				 * (non-Javadoc)
//				 * 
//				 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
//				 */
//				public void widgetSelected(SelectionEvent e) {
//					Shell shell = composite.getShell();
//					IContentType selectedContentType = getSelectedContentType();
//					FileExtensionDialog dialog = new FileExtensionDialog(
//							shell,
//							WorkbenchMessages.get().ContentTypes_addDialog_title,
//							IWorkbenchHelpContextIds.FILE_EXTENSION_DIALOG,
//							WorkbenchMessages.get().ContentTypes_addDialog_messageHeader,
//							WorkbenchMessages.get().ContentTypes_addDialog_message,
//							WorkbenchMessages.get().ContentTypes_addDialog_label);
//					if (dialog.open() == Window.OK) {
//						String name = dialog.getName();
//						String extension = dialog.getExtension();
//						try {
//							if (name.equals("*")) { //$NON-NLS-1$
//								selectedContentType.addFileSpec(extension,
//										IContentType.FILE_EXTENSION_SPEC);
//							} else {
//								selectedContentType
//										.addFileSpec(
//												name
//														+ (extension.length() > 0 ? ('.' + extension)
//																: ""), //$NON-NLS-1$
//												IContentType.FILE_NAME_SPEC);
//							}
//						} catch (CoreException ex) {
//							StatusUtil.handleStatus(ex.getStatus(),
//									StatusManager.SHOW, shell);
//							WorkbenchPlugin.log(ex);
//						} finally {
//							fileAssociationViewer.refresh(false);
//						}
//					}
//				}
//			});
//
//			editButton = new Button(buttonArea, SWT.PUSH);
//			editButton.setFont(composite.getFont());
//			editButton
//					.setText(WorkbenchMessages.get().ContentTypes_fileAssociationsEditLabel);
//			editButton.setEnabled(false);
//			setButtonLayoutData(editButton);
//			editButton.addSelectionListener(new SelectionAdapter() {
//				public void widgetSelected(SelectionEvent e) {
//					Shell shell = composite.getShell();
//					IContentType selectedContentType = getSelectedContentType();
//					Spec spec = getSelectedSpecs()[0];
//					FileExtensionDialog dialog = new FileExtensionDialog(
//							shell,
//							WorkbenchMessages.get().ContentTypes_editDialog_title,
//							IWorkbenchHelpContextIds.FILE_EXTENSION_DIALOG,
//							WorkbenchMessages.get().ContentTypes_editDialog_messageHeader,
//							WorkbenchMessages.get().ContentTypes_editDialog_message,
//							WorkbenchMessages.get().ContentTypes_editDialog_label);
//					if (spec.name == null) {
//						dialog.setInitialValue("*." + spec.ext); //$NON-NLS-1$
//					} else {
//						dialog.setInitialValue(spec.name);
//					}
//					if (dialog.open() == Window.OK) {
//						String name = dialog.getName();
//						String extension = dialog.getExtension();
//						try {
//							// remove the original spec
//							if (spec.name != null) {
//								selectedContentType.removeFileSpec(spec.name,
//										IContentType.FILE_NAME_SPEC);
//							} else if (spec.ext != null) {
//								selectedContentType.removeFileSpec(spec.ext,
//										IContentType.FILE_EXTENSION_SPEC);
//							}
//
//							// add the new one
//							if (name.equals("*")) { //$NON-NLS-1$
//								selectedContentType.addFileSpec(extension,
//										IContentType.FILE_EXTENSION_SPEC);
//							} else {
//								selectedContentType
//										.addFileSpec(
//												name
//														+ (extension.length() > 0 ? ('.' + extension)
//																: ""), //$NON-NLS-1$
//												IContentType.FILE_NAME_SPEC);
//							}
//						} catch (CoreException ex) {
//							StatusUtil.handleStatus(ex.getStatus(),
//									StatusManager.SHOW, shell);
//							WorkbenchPlugin.log(ex);
//						} finally {
//							fileAssociationViewer.refresh(false);
//						}
//					}
//				}
//			});
//
//			removeButton = new Button(buttonArea, SWT.PUSH);
//			removeButton.setEnabled(false);
//			removeButton
//					.setText(WorkbenchMessages.get().ContentTypes_fileAssociationsRemoveLabel);
//			setButtonLayoutData(removeButton);
//			removeButton.addSelectionListener(new SelectionAdapter() {
//				/*
//				 * (non-Javadoc)
//				 * 
//				 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
//				 */
//				public void widgetSelected(SelectionEvent event) {
//					IContentType contentType = getSelectedContentType();
//					Spec[] specs = getSelectedSpecs();
//					MultiStatus result = new MultiStatus(PlatformUI.PLUGIN_ID,
//							0, new IStatus[0],
//							WorkbenchMessages.get().ContentTypes_errorDialogMessage,
//							null);
//					for (int i = 0; i < specs.length; i++) {
//						Spec spec = specs[i];
//						try {
//							if (spec.name != null) {
//								contentType.removeFileSpec(spec.name,
//										IContentType.FILE_NAME_SPEC);
//							} else if (spec.ext != null) {
//								contentType.removeFileSpec(spec.ext,
//										IContentType.FILE_EXTENSION_SPEC);
//							}
//						} catch (CoreException e) {
//							result.add(e.getStatus());
//						}
//					}
//					if (!result.isOK()) {
//						StatusUtil.handleStatus(result, StatusManager.SHOW,
//								composite.getShell());
//					}
//					fileAssociationViewer.refresh(false);
//				}
//			});
//		}
//	}
//
//	protected Spec[] getSelectedSpecs() {
//		List list = ((IStructuredSelection) fileAssociationViewer
//				.getSelection()).toList();
//		return (Spec[]) list.toArray(new Spec[list.size()]);
//	}
//
//	protected IContentType getSelectedContentType() {
//		return (IContentType) ((IStructuredSelection) contentTypesViewer
//				.getSelection()).getFirstElement();
//	}
//
//	/**
//	 * @param composite
//	 */
//	private void createContentTypesTree(Composite composite) {
//		{
//			Label label = new Label(composite, SWT.NONE);
//			label.setFont(composite.getFont());
//			label.setText(WorkbenchMessages.get().ContentTypes_contentTypesLabel);
//			GridData data = new GridData();
//			data.horizontalSpan = 2;
//			label.setLayoutData(data);
//		}
//		{
//			contentTypesViewer = new TreeViewer(composite, SWT.SINGLE
//					| SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
//			contentTypesViewer.getControl().setFont(composite.getFont());
//			contentTypesViewer
//					.setContentProvider(new ContentTypesContentProvider());
//			contentTypesViewer
//					.setLabelProvider(new ContentTypesLabelProvider());
//			contentTypesViewer.setComparator(new ViewerComparator());
//			contentTypesViewer.setInput(Platform.getContentTypeManager());
//			GridData data = new GridData(GridData.FILL_BOTH);
//			data.horizontalSpan = 2;
//			contentTypesViewer.getControl().setLayoutData(data);
//
//			contentTypesViewer
//					.addSelectionChangedListener(new ISelectionChangedListener() {
//
//						/*
//						 * (non-Javadoc)
//						 * 
//						 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
//						 */
//						public void selectionChanged(SelectionChangedEvent event) {
//							IContentType contentType = (IContentType) ((IStructuredSelection) event
//									.getSelection()).getFirstElement();
//							fileAssociationViewer.setInput(contentType);
//
//							if (contentType != null) {
//								String charset = contentType
//										.getDefaultCharset();
//								if (charset == null) {
//									charset = ""; //$NON-NLS-1$
//								}
//								charsetField.setText(charset);
//							} else {
//								charsetField.setText(""); //$NON-NLS-1$
//							}
//
//							charsetField.setEnabled(contentType != null);
//							addButton.setEnabled(contentType != null);
//							setButton.setEnabled(false);
//						}
//					});
//		}
//	}
//
//	/*
//	 * (non-Javadoc)
//	 * 
//	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
//	 */
//	public void init(IWorkbench workbench) {
//		this.workbench = workbench;
//		noDefaultAndApplyButton();
//	}
//}
